package com.ruoyi.scheme.service.Impl;

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.scheme.mapper.ErsCostItemTemplateMapper;
import com.ruoyi.scheme.pojo.ErsCostItemTemplate;
import com.ruoyi.scheme.service.ErsCostItemTemplateService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class ErsCostItemTemplateServiceImpl implements ErsCostItemTemplateService {
    @Resource
    private ErsCostItemTemplateMapper mapper;

    /**
     * 新增一条工程造价模板项
     *
     * @param template 模板项对象
     * @return 影响行数
     */
    @Override
    @DataSource(DataSourceType.SLAVE)
    public int add(ErsCostItemTemplate template) {
        return mapper.insert(template);
    }

    /**
     * 更新一条工程造价模板项
     *
     * @param template 模板项对象（必须包含主键 ID）
     * @return 影响行数
     */
    @Override
    @DataSource(DataSourceType.SLAVE)
    public int update(ErsCostItemTemplate template) {
        return mapper.update(template);
    }

    /**
     * 根据主键 ID 删除模板项
     *
     * @param id 模板项主键
     * @return 影响行数
     */
    @Override
    @DataSource(DataSourceType.SLAVE)
    public int deleteById(Long id) {
        return mapper.deleteById(id);
    }

    /**
     * 根据主键 ID 查询模板项详情
     *
     * @param id 模板项主键
     * @return 模板项对象
     */
    @Override
    @DataSource(DataSourceType.SLAVE)
    public ErsCostItemTemplate getById(Long id) {
        return mapper.selectById(id);
    }

    /**
     * 查询所有工程造价模板项
     *
     * @return 模板项列表
     */
    @Override
    @DataSource(DataSourceType.SLAVE)
    public List<ErsCostItemTemplate> listAll() {
        return mapper.selectAll();
    }

    /**
     * 根据模板ID查询模板项列表
     *
     * @param templateId 模板ID
     * @return 模板项列表
     */
    @Override
    @DataSource(DataSourceType.SLAVE)
    public List<ErsCostItemTemplate> listByTemplateId(Short templateId) {
        return mapper.selectByTemplateId(templateId);
    }
}
